#include "txdnn_bindings.h"

namespace pytxdnn {

// PyInit_txdnn from Python to Cpp
PYBIND11_MODULE(pytxdnn, m) {

  // txdnn : Data Type, kernel params, hardware abstraction
  py::module txdnn = m.def_submodule("txdnn", "TxDNN");
  // graph: Kernels in graph model
  py::module graph = m.def_submodule("graph", "TxDNN Graph");
  // eager: Kernels in eager mode
  py::module eager = m.def_submodule("eager", "TxDNN Eager");


  // TxDNN Entry
  bindTxdnn(txdnn);
  // TxDNN Graph
  bindTxdnnGraph(graph);
  // TxDNN Eager
  bindTxdnnEager(eager);
}


} // namespace pytxdnn